package xyz.tanxiao.links.service;

import com.baomidou.mybatisplus.extension.service.IService;
import xyz.tanxiao.links.common.request.ToShortLinkRequest;
import xyz.tanxiao.links.entity.SlLinkMapping;

/**
 * 链接映射Service
 *
 * @author 万成波
 * @email 2300064869@qq.com
 * @createTime 2023-06-10 00:56:57 星期六
 */
public interface SlLinkMappingService extends IService<SlLinkMapping> {

	/**
	 * 长链接转短链接
	 *
	 * @param request 请求参数
	 * @return 短链接
	 */
	String toShortLink(ToShortLinkRequest request);


	/**
	 * 检查转换的主机域名
	 *
	 * @param sourceUrl 原始URL
	 */
	void checkSourceDomain(String sourceUrl);


	/**
	 * 生成一个不重复的映射Key
	 *
	 * @param longLink 长链接
	 * @return 映射Key
	 */
	String getNoRepeatMappingKey(String longLink);

}